Aqui temos 3 exemplos de uso do do…while em
Java, cada um com explicação clara do funcionamento e o motivo de usar essa estrutura.
Exemplo 1: Pedir senha até o usuário digitar corretamente
import java.util.Scanner;
public class Exemplo1 {
public static void main(String[] args) {
Scanner teclado = new Scanner(System.in);
String senhaCorreta = "1234";
String senhaDigitada;
do {
System.out.print("Digite a senha: ");
senhaDigitada = teclado.nextLine();
} while (!senhaDigitada.equals(senhaCorreta));
System.out.println("Acesso permitido!");
}
}
Reescreva o código acima utilizando a classe que criamos nos textos passados: leitura.lerString(teclado, mensagem) .
Como funciona
-
O programa sempre pede a senha pelo menos uma vez.
-
Depois de o usuário digitar, o programa verifica se a senha está correta.
-
Enquanto a senha estiver errada, o laço se repete.
-
Quando a senha está certa, a condição se torna falsa e o loop termina.
-
O fluxo de execução do programa continua sua execução a partir do código que estiver escrito logo depois do termino do bloco de comandos.
Por que usar do…while aqui?
Porque queremos garantir que o usuário seja solicitado a digitar a senha pelo menos uma vez antes de qualquer verificação.
Exemplo 2: Menu interativo que só termina quando o usuário escolhe sair
import java.util.Scanner;
public class Exemplo2 {
public static void main(String[] args) {
Scanner teclado = new Scanner(System.in);
int opcao;
do {
System.out.println("\n--- MENU ---");
System.out.println("1 - Dizer Olá");
System.out.println("2 - Mostrar número aleatório");
System.out.println("3 - Sair");
System.out.print("\nEscolha uma opção: ");
opcao = teclado.nextInt();
switch (opcao) {
case 1:
System.out.println("Olá!"); break;
case 2:
System.out.println("Número aleatório: " + Math.random()); break;
case 3:
System.out.println("Encerrando..."); break;
default:
System.out.println("Opção inválida!");
}
} while (opcao != 3);
}
}
Como funciona
-
O menu é mostrado uma vez antes de qualquer verificação.
-
O usuário escolhe uma opção.
-
O programa executa a ação da opção escolhida.
-
O laço só termina quando a opção digitada for 3 (Sair).
Por que usar do…while aqui?
Porque um menu precisa sempre ser exibido pelo menos uma vez, e só depois verificamos se o usuário quer sair ou continuar.
Exemplo 3 – Ler números e somá-los até que o usuário digite zero
import java.util.Scanner;
public class Exemplo3 {
public static void main(String[] args) {
Scanner teclado = new Scanner(System.in);
int numero;
int soma = 0;
do {
System.out.print("Digite um número (0 para parar): ");
numero = teclado.nextInt();
soma += numero;
} while (numero != 0);
System.out.println("Soma total: " + soma);
}
}Reescreva o código acima utilizando a classe que criamos nos textos passados: leitura.lerInteiro(teclado, mensagem) .
Como funciona
-
O programa pede um número ao usuário pelo menos uma vez.
-
O número é somado ao total.
-
Enquanto o número for diferente de 0, o laço continua.
-
Quando o usuário digita 0, o laço encerra.
Por que usar do…while aqui?
Porque queremos que o usuário digite ao menos um número, mesmo que ele decida parar imediatamente (digitando 0).
Resumo das vantagens nos exemplos
| Exemplo | Por que o do…while é ideal? |
|---|---|
| Senha | Usuário deve digitar pelo menos uma vez |
| Menu | O menu precisa aparecer pelo menos uma vez |
| Soma de números | Um número precisa ser solicitado antes da verificação |